/*
 * TracePath.h
 *
 *  Created on: 2012/08/06
 *      Author: guanxiaoying
 */

#ifndef TRACEPATH_H_
#define TRACEPATH_H_

#define LOOP_FLG_NONE 0
#define LOOP_FLG_IN   1

#define PATH_NONE 0  /* it's a value that means: all current branches have been traced  */
#define PATH_TRUE 1   /* when the result of condition is true  */
#define PATH_FALSE 2  /* when the result of condition is false  */

/* get current PATH */
#define Tr_PathGetCurrPathInTracing()  stCmdCurrTraceInfo.astPath
/* PATH_TRUE or PATH_FALSE */
#define Tr_PathGetCurrConditionInTracing()  stCmdPathInfoAccess.condition.get( stCmdCurrTraceInfo.astPath )

AST Tr_PathGetCurrFirst( VOID );
AST Tr_PathGetCurrLast( VOID );
VOID Tr_PathCollectPathTree( AST astTrFunction );
S4 Tr_PathLoop( VOID );
BOOL Tr_PathIsInLoop( VOID );
#endif /* TRACEPATH_H_ */
